From fa8a3991e33e51ca9ab9724ff4fb25326065d39d Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Fri, 14 Dec 2007 13:12:17 -0700 Subject: [PATCH] [IA64] vti fault handler clean up: make VMX_DBG_FAULT aware of fault in xen When fault occurs in xen, r21 doesn't point to vcpu so it needs to be retrieved from cpu_kr. Signed-off-by: Isaku Yamahata --- xen/arch/ia64/vmx/vmx_ivt.S | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/arch/ia64/vmx/vmx_ivt.S b/xen/arch/ia64/vmx/vmx_ivt.S index 8b6cf59e92..9785947993 100644 --- a/xen/arch/ia64/vmx/vmx_ivt.S +++ b/xen/arch/ia64/vmx/vmx_ivt.S @@ -72,12 +72,18 @@ #ifdef VTI_DEBUG #define IVT_DEBUG_MASK (IVT_DEBUG_SIZE * (IVT_DEBUG_MAX - 1)) #define VMX_DBG_FAULT(i) \ + mov r31=pr; \ + mov r20=cr.ipsr;; \ + tbit.z p6,p0=r20,IA64_PSR_VM_BIT;; \ +(p6)movl r21=THIS_CPU(cpu_kr)+ \ + IA64_KR_CURRENT_OFFSET;; \ +(p6)ld8 r21=[r21]; \ + mov pr=r31;; \ add r16=IVT_CUR_OFS,r21; \ add r17=IVT_DBG_OFS,r21;; \ ld8 r18=[r16];; \ add r17=r18,r17; \ mov r19=cr.iip; \ - mov r20=cr.ipsr; \ mov r22=cr.ifa; \ mov r23=i;; \ st8 [r17]=r19,8; \ -- 2.30.2